#ifndef TIPSBOX_H
#define TIPSBOX_H

#include <QGraphicsDropShadowEffect>
#include <QWidget>
#include <QTimer>
#include <QPropertyAnimation>
#include <QSequentialAnimationGroup>
#include "global.h"

//typedef struct{
//    quint8 warning;
//    quint8 error;
//    quint8 success;
//    quint8 tips;
//}Type;

namespace Ui {
class TipsBox;
}

// 设置在按钮个数
enum MSG_TYPE
{
    SA_OK           = 0,    // 只有一个“确定”按钮，且两秒钟后自动关闭消息窗口
    SA_OKCANCEL     = 1,    // 一个“是”按钮，一个“否”按钮
    SA_OKS          = 2,    // 只有一个“确定”按钮，不会自动关闭消息窗口
    SA_NoOk         = 3     // 没有按钮
};

// 设置提示的类型
enum MSG_TIP_TYPE
{
    SA_SUCCESS      = 0,    // 完成
    SA_FAILED       = 1,    // 错误
    SA_WARNING      = 2,    // 警告
    SA_TIPS         = 3,    // 提示
    SA_QUESTION     = 4     // 未知
};

class TipsBox : public QWidget
{
    Q_OBJECT

public:
    explicit TipsBox(const QString &text , const MSG_TIP_TYPE &type , const quint16 &duration , QWidget *parent = nullptr);
    ~TipsBox();

    void ShadowEffectInit();
private:
    Ui::TipsBox *ui;

    QTimer *time;
    int m_nTipType;
    quint16 count = 0;
    QString m_text;
    QPropertyAnimation animation;
    QPropertyAnimation *fadeAnimation;
    int getWidX = 0 , getWidY = 0;
};

#endif // TIPSBOX_H
